
// Generated from /home/chh/gitprojects/plc2llvm/grammar/PLCSTLexer.g4 by ANTLR 4.11.1


#include "plc2llvm/Lexer/PLCSTLexer.h"


using namespace antlr4;

using namespace plcst;


using namespace antlr4;

namespace {

struct PLCSTLexerStaticData final {
  PLCSTLexerStaticData(std::vector<std::string> ruleNames,
                          std::vector<std::string> channelNames,
                          std::vector<std::string> modeNames,
                          std::vector<std::string> literalNames,
                          std::vector<std::string> symbolicNames)
      : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)),
        modeNames(std::move(modeNames)), literalNames(std::move(literalNames)),
        symbolicNames(std::move(symbolicNames)),
        vocabulary(this->literalNames, this->symbolicNames) {}

  PLCSTLexerStaticData(const PLCSTLexerStaticData&) = delete;
  PLCSTLexerStaticData(PLCSTLexerStaticData&&) = delete;
  PLCSTLexerStaticData& operator=(const PLCSTLexerStaticData&) = delete;
  PLCSTLexerStaticData& operator=(PLCSTLexerStaticData&&) = delete;

  std::vector<antlr4::dfa::DFA> decisionToDFA;
  antlr4::atn::PredictionContextCache sharedContextCache;
  const std::vector<std::string> ruleNames;
  const std::vector<std::string> channelNames;
  const std::vector<std::string> modeNames;
  const std::vector<std::string> literalNames;
  const std::vector<std::string> symbolicNames;
  const antlr4::dfa::Vocabulary vocabulary;
  antlr4::atn::SerializedATNView serializedATN;
  std::unique_ptr<antlr4::atn::ATN> atn;
};

::antlr4::internal::OnceFlag plcstlexerLexerOnceFlag;
PLCSTLexerStaticData *plcstlexerLexerStaticData = nullptr;

void plcstlexerLexerInitialize() {
  assert(plcstlexerLexerStaticData == nullptr);
  auto staticData = std::make_unique<PLCSTLexerStaticData>(
    std::vector<std::string>{
      "Letter", "Digit", "Bit", "Octal_Digit", "Hex_Digit", "Unsigned_Int", 
      "Signed_Int", "Binary_Int", "Octal_Int", "Hex_Int", "Science_real", 
      "Const_bool", "S_Byte_Char_Value", "D_Byte_Char_Value", "Common_Char_Value", 
      "S_Byte_Char_Str", "D_Byte_Char_Str", "Duration", "Fix_Point", "Interval", 
      "Days", "Hours", "Minutes", "Seconds", "Milliseconds", "Microseconds", 
      "Nanoseconds", "Time_Of_Day", "Daytime", "Day_Hour", "Day_Minute", 
      "Day_Second", "Date", "Date_Literal", "Year", "Month", "Day", "Date_And_Time", 
      "Int_Type_Name", "Sign_Int_Type_Name", "Unsign_Int_Type_Name", "Real_Type_Name", 
      "CHAR", "WCHAR", "SString_Type_Name", "WString_Type_Name", "Time_Type_Name", 
      "Date_Type_Name", "Tod_Type_Name", "DT_Type_Name", "Bool_Type_Name", 
      "Multibits_Type_Name", "TYPE", "END_TYPE", "ARRAY", "OF", "STRUCT", 
      "END_STRUCT", "OVERLAP", "Direct_Variable", "REF_TO", "Null", "REF", 
      "THIS", "VAR_INPUT", "END_VAR", "RETAIN", "NON_RETAIN", "R_EDGE", 
      "F_EDGE", "VAR_OUTPUT", "VAR_IN_OUT", "VAR", "CONSTANT", "VAR_TEMP", 
      "VAR_EXTERNAL", "VAR_GLOBAL", "AT", "STRING", "WSTRING", "Var_Location", 
      "Std_Func_Name", "FUNCTION", "END_FUNCTION", "Std_FB_Name", "FUNCTION_BLOCK", 
      "FINAL", "ABSTRACT", "EXTENDS", "IMPLEMENTS", "END_FUNCTION_BLOCK", 
      "METHOD", "END_METHOD", "OVERRIDE", "CLASS", "END_CLASS", "INTERFACE", 
      "END_INTERFACE", "PUBLIC", "PROTECTED", "PRIVATE", "PROGRAM", "END_PROGRAM", 
      "VAR_ACCESS", "INITIAL_STEP", "END_STEP", "STEP", "ACTION_QUALIFIER", 
      "ACTION_TIME_QUALIFIER", "TRANSITION", "END_TRANSITION", "PRIORITY", 
      "FROM", "ACTION", "END_ACTION", "CONFIGURATION", "END_CONFIGURATION", 
      "RESOURCE", "ON", "END_RESOURCE", "Access_Direction", "TASK", "INTERVAL", 
      "SINGLE", "WITH", "VAR_CONFIG", "NAMESPACE", "INTERNAL", "END_NAMESPACE", 
      "USING", "OR", "XOR", "AND", "MOD", "NOT", "Multibit_Part_Access", 
      "SUPER", "RETURN", "IF", "THEN", "ELSIF", "ELSE", "END_IF", "CASE", 
      "END_CASE", "EXIT", "CONTINUE", "FOR", "DO", "END_FOR", "TO", "BY", 
      "WHILE", "END_WHILE", "REPEAT", "UNTIL", "END_REPEAT", "Identifier", 
      "Whitespace", "Newline", "BlockComment", "LineComment", "Dot", "Semi", 
      "Colon", "Assign", "LeftParen", "RightParen", "RangeDot", "Caret", 
      "Comma", "Underline", "TypeSign", "LeftBracket", "RightBracket", "StarStar", 
      "AndSign", "Equal", "NotEqual", "Less", "Greater", "LessEqual", "GreaterEqual", 
      "Plus", "Minus", "Div", "QuestionEqual", "LeftAssign", "Star"
    },
    std::vector<std::string>{
      "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
    },
    std::vector<std::string>{
      "DEFAULT_MODE"
    },
    std::vector<std::string>{
      "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", 
      "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "'CHAR'", 
      "'WCHAR'", "", "", "", "", "'BOOL'", "", "'TYPE'", "'END_TYPE'", "'ARRAY'", 
      "'OF'", "'STRUCT'", "'END_STRUCT'", "'OVERLAP'", "", "'REF_TO'", "'NULL'", 
      "'REF'", "'THIS'", "'VAR_INPUT'", "'END_VAR'", "'RETAIN'", "'NON_RETAIN'", 
      "'R_EDGE'", "'F_EDGE'", "'VAR_OUTPUT'", "'VAR_IN_OUT'", "'VAR'", "'CONSTANT'", 
      "'VAR_TEMP'", "'VAR_EXTERNAL'", "'VAR_GLOBAL'", "'AT'", "'STRING'", 
      "'WSTRING'", "", "", "'FUNCTION'", "'END_FUNCTION'", "", "'FUNCTION_BLOCK'", 
      "'FINAL'", "'ABSTRACT'", "'EXTENDS'", "'IMPLEMENTS'", "'END_FUNCTION_BLOCK'", 
      "'METHOD'", "'END_METHOD'", "'OVERRIDE'", "'CLASS'", "'END_CLASS'", 
      "'INTERFACE'", "'END_INTERFACE'", "'PUBLIC'", "'PROTECTED'", "'PRIVATE'", 
      "'PROGRAM'", "'END_PROGRAM'", "'VAR_ACCESS'", "'INITIAL_STEP'", "'END_STEP'", 
      "'STEP'", "", "", "'TRANSITION'", "'END_TRANSITION'", "'PRIORITY'", 
      "'FROM'", "'ACTION'", "'END_ACTION'", "'CONFIGURATION'", "'END_CONFIGURATION'", 
      "'RESOURCE'", "'ON'", "'END_RESOURCE'", "", "'TASK'", "'INTERVAL'", 
      "'SINGLE'", "'WITH'", "'VAR_CONFIG'", "'NAMESPACE'", "'INTERNAL'", 
      "'END_NAMESPACE'", "'USING'", "'OR'", "'XOR'", "'AND'", "'MOD'", "'NOT'", 
      "", "'SUPER'", "'RETURN'", "'IF'", "'THEN'", "'ELSIF'", "'ELSE'", 
      "'END_IF'", "'CASE'", "'END_CASE'", "'EXIT'", "'CONTINUE'", "'FOR'", 
      "'DO'", "'END_FOR'", "'TO'", "'BY'", "'WHILE'", "'END_WHILE'", "'REPEAT'", 
      "'UNTIL'", "'END_REPEAT'", "", "", "", "", "", "'.'", "';'", "':'", 
      "':='", "'('", "')'", "'..'", "'^'", "','", "'_'", "'#'", "'['", "']'", 
      "'**'", "'&'", "'='", "'<>'", "'<'", "'>'", "'<='", "'>='", "'+'", 
      "'-'", "'/'", "'\\u003F='", "'=>'", "'*'"
    },
    std::vector<std::string>{
      "", "Unsigned_Int", "Signed_Int", "Binary_Int", "Octal_Int", "Hex_Int", 
      "Science_real", "Const_bool", "S_Byte_Char_Str", "D_Byte_Char_Str", 
      "Duration", "Interval", "Days", "Hours", "Minutes", "Seconds", "Milliseconds", 
      "Microseconds", "Nanoseconds", "Time_Of_Day", "Daytime", "Day_Hour", 
      "Day_Minute", "Day_Second", "Date", "Date_Literal", "Year", "Month", 
      "Day", "Date_And_Time", "Int_Type_Name", "Real_Type_Name", "CHAR", 
      "WCHAR", "SString_Type_Name", "WString_Type_Name", "Time_Type_Name", 
      "Date_Type_Name", "Bool_Type_Name", "Multibits_Type_Name", "TYPE", 
      "END_TYPE", "ARRAY", "OF", "STRUCT", "END_STRUCT", "OVERLAP", "Direct_Variable", 
      "REF_TO", "Null", "REF", "THIS", "VAR_INPUT", "END_VAR", "RETAIN", 
      "NON_RETAIN", "R_EDGE", "F_EDGE", "VAR_OUTPUT", "VAR_IN_OUT", "VAR", 
      "CONSTANT", "VAR_TEMP", "VAR_EXTERNAL", "VAR_GLOBAL", "AT", "STRING", 
      "WSTRING", "Var_Location", "Std_Func_Name", "FUNCTION", "END_FUNCTION", 
      "Std_FB_Name", "FUNCTION_BLOCK", "FINAL", "ABSTRACT", "EXTENDS", "IMPLEMENTS", 
      "END_FUNCTION_BLOCK", "METHOD", "END_METHOD", "OVERRIDE", "CLASS", 
      "END_CLASS", "INTERFACE", "END_INTERFACE", "PUBLIC", "PROTECTED", 
      "PRIVATE", "PROGRAM", "END_PROGRAM", "VAR_ACCESS", "INITIAL_STEP", 
      "END_STEP", "STEP", "ACTION_QUALIFIER", "ACTION_TIME_QUALIFIER", "TRANSITION", 
      "END_TRANSITION", "PRIORITY", "FROM", "ACTION", "END_ACTION", "CONFIGURATION", 
      "END_CONFIGURATION", "RESOURCE", "ON", "END_RESOURCE", "Access_Direction", 
      "TASK", "INTERVAL", "SINGLE", "WITH", "VAR_CONFIG", "NAMESPACE", "INTERNAL", 
      "END_NAMESPACE", "USING", "OR", "XOR", "AND", "MOD", "NOT", "Multibit_Part_Access", 
      "SUPER", "RETURN", "IF", "THEN", "ELSIF", "ELSE", "END_IF", "CASE", 
      "END_CASE", "EXIT", "CONTINUE", "FOR", "DO", "END_FOR", "TO", "BY", 
      "WHILE", "END_WHILE", "REPEAT", "UNTIL", "END_REPEAT", "Identifier", 
      "Whitespace", "Newline", "BlockComment", "LineComment", "Dot", "Semi", 
      "Colon", "Assign", "LeftParen", "RightParen", "RangeDot", "Caret", 
      "Comma", "Underline", "TypeSign", "LeftBracket", "RightBracket", "StarStar", 
      "AndSign", "Equal", "NotEqual", "Less", "Greater", "LessEqual", "GreaterEqual", 
      "Plus", "Minus", "Div", "QuestionEqual", "LeftAssign", "Star"
    }
  );
  static const int32_t serializedATNSegment[] = {
  	4,0,176,2016,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,
  	7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,
  	14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,
  	21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,
  	28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,
  	35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,
  	42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,
  	49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,
  	56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,
  	63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,
  	70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,
  	77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,
  	84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,
  	91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,
  	98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,
  	7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,
  	7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,
  	7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,
  	7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,
  	7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,
  	7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,
  	7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,
  	7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,
  	7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,
  	7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,
  	7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,
  	7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,
  	7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,
  	7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,
  	7,188,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,3,5,392,8,5,1,5,
  	5,5,395,8,5,10,5,12,5,398,9,5,1,6,1,6,3,6,402,8,6,1,6,1,6,1,7,1,7,1,7,
  	1,7,3,7,410,8,7,1,7,4,7,413,8,7,11,7,12,7,414,1,8,1,8,1,8,1,8,3,8,421,
  	8,8,1,8,4,8,424,8,8,11,8,12,8,425,1,9,1,9,1,9,1,9,1,9,3,9,433,8,9,1,9,
  	4,9,436,8,9,11,9,12,9,437,1,10,1,10,1,10,1,10,1,10,3,10,445,8,10,1,11,
  	1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,457,8,11,1,12,1,12,
  	1,12,1,12,1,12,1,12,1,12,1,12,3,12,467,8,12,1,13,1,13,1,13,1,13,1,13,
  	1,13,1,13,1,13,1,13,1,13,3,13,479,8,13,1,14,1,14,1,14,1,14,1,14,1,14,
  	1,14,1,14,1,14,1,14,1,14,1,14,1,14,3,14,494,8,14,1,15,1,15,4,15,498,8,
  	15,11,15,12,15,499,1,15,1,15,1,16,1,16,4,16,506,8,16,11,16,12,16,507,
  	1,16,1,16,1,17,1,17,1,17,1,17,3,17,516,8,17,1,17,1,17,1,17,3,17,521,8,
  	17,1,17,1,17,1,18,1,18,1,18,1,18,3,18,529,8,18,1,19,1,19,1,19,1,19,1,
  	19,1,19,1,19,3,19,538,8,19,1,20,1,20,1,20,1,20,1,20,1,20,3,20,546,8,20,
  	1,20,3,20,549,8,20,3,20,551,8,20,1,21,1,21,1,21,1,21,1,21,1,21,3,21,559,
  	8,21,1,21,3,21,562,8,21,3,21,564,8,21,1,22,1,22,1,22,1,22,1,22,1,22,3,
  	22,572,8,22,1,22,3,22,575,8,22,3,22,577,8,22,1,23,1,23,1,23,1,23,1,23,
  	1,23,3,23,585,8,23,1,23,3,23,588,8,23,3,23,590,8,23,1,24,1,24,1,24,1,
  	24,1,24,1,24,1,24,1,24,1,24,3,24,601,8,24,1,24,3,24,604,8,24,3,24,606,
  	8,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,617,8,25,1,25,
  	3,25,620,8,25,3,25,622,8,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,
  	27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27,641,8,27,1,27,1,27,1,
  	27,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,30,1,30,1,31,1,31,1,32,1,
  	32,1,32,1,32,3,32,662,8,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,
  	33,1,34,1,34,1,35,1,35,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,
  	37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,3,37,694,8,37,1,37,1,37,1,37,1,
  	37,1,37,1,38,1,38,3,38,703,8,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,
  	39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,3,39,720,8,39,1,40,1,40,1,40,1,
  	40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,
  	40,1,40,3,40,741,8,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,3,
  	41,752,8,41,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,
  	44,1,44,1,44,1,44,1,44,3,44,770,8,44,1,45,1,45,1,45,1,45,1,45,3,45,777,
  	8,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,788,8,46,1,47,
  	1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,3,47,799,8,47,1,48,1,48,1,48,
  	1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,
  	1,48,3,48,819,8,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,
  	1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,3,49,839,8,49,1,50,1,50,1,50,
  	1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,
  	1,51,1,51,1,51,1,51,1,51,1,51,3,51,864,8,51,1,52,1,52,1,52,1,52,1,52,
  	1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,
  	1,54,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,
  	1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,
  	1,58,1,58,1,59,1,59,1,59,3,59,918,8,59,1,59,1,59,1,59,1,59,5,59,924,8,
  	59,10,59,12,59,927,9,59,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,
  	1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,
  	1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,
  	1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,
  	1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,69,
  	1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,
  	1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,
  	1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,
  	1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,
  	1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,
  	1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,
  	1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,
  	1,81,1,81,1,81,3,81,1249,8,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,
  	1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,
  	1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,
  	1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,
  	1,84,1,84,1,84,1,84,1,84,1,84,3,84,1307,8,84,1,85,1,85,1,85,1,85,1,85,
  	1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,
  	1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,
  	1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,
  	1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,
  	1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,
  	1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,
  	1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,
  	1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,
  	1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,
  	1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,
  	1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,
  	1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,
  	1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,
  	1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,
  	1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,
  	1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,
  	1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,3,108,1536,8,108,
  	1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,
  	1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,
  	1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,
  	1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114,
  	1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,
  	1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,
  	1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,
  	1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,
  	1,117,1,117,1,117,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,
  	1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,
  	1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,
  	1,120,1,120,3,120,1672,8,120,1,121,1,121,1,121,1,121,1,121,1,122,1,122,
  	1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,
  	1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,
  	1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,
  	1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,
  	1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,
  	1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,
  	1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,
  	1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,3,135,1773,8,135,1,135,
  	3,135,1776,8,135,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,
  	1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,
  	1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,142,
  	1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,144,
  	1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,
  	1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,
  	1,147,1,147,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,
  	1,149,1,150,1,150,1,150,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,
  	1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,
  	1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,
  	1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,
  	1,157,1,157,5,157,1909,8,157,10,157,12,157,1912,9,157,1,158,4,158,1915,
  	8,158,11,158,12,158,1916,1,158,1,158,1,159,1,159,3,159,1923,8,159,1,159,
  	3,159,1926,8,159,1,159,1,159,1,160,1,160,1,160,1,160,5,160,1934,8,160,
  	10,160,12,160,1937,9,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,
  	161,1,161,5,161,1948,8,161,10,161,12,161,1951,9,161,1,161,1,161,1,162,
  	1,162,1,163,1,163,1,164,1,164,1,165,1,165,1,165,1,166,1,166,1,167,1,167,
  	1,168,1,168,1,168,1,169,1,169,1,170,1,170,1,171,1,171,1,172,1,172,1,173,
  	1,173,1,174,1,174,1,175,1,175,1,175,1,176,1,176,1,177,1,177,1,178,1,178,
  	1,178,1,179,1,179,1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,182,1,183,
  	1,183,1,184,1,184,1,185,1,185,1,186,1,186,1,186,1,187,1,187,1,187,1,188,
  	1,188,1,1935,0,189,1,0,3,0,5,0,7,0,9,0,11,1,13,2,15,3,17,4,19,5,21,6,
  	23,7,25,0,27,0,29,0,31,8,33,9,35,10,37,0,39,11,41,12,43,13,45,14,47,15,
  	49,16,51,17,53,18,55,19,57,20,59,21,61,22,63,23,65,24,67,25,69,26,71,
  	27,73,28,75,29,77,30,79,0,81,0,83,31,85,32,87,33,89,34,91,35,93,36,95,
  	37,97,0,99,0,101,38,103,39,105,40,107,41,109,42,111,43,113,44,115,45,
  	117,46,119,47,121,48,123,49,125,50,127,51,129,52,131,53,133,54,135,55,
  	137,56,139,57,141,58,143,59,145,60,147,61,149,62,151,63,153,64,155,65,
  	157,66,159,67,161,68,163,69,165,70,167,71,169,72,171,73,173,74,175,75,
  	177,76,179,77,181,78,183,79,185,80,187,81,189,82,191,83,193,84,195,85,
  	197,86,199,87,201,88,203,89,205,90,207,91,209,92,211,93,213,94,215,95,
  	217,96,219,97,221,98,223,99,225,100,227,101,229,102,231,103,233,104,235,
  	105,237,106,239,107,241,108,243,109,245,110,247,111,249,112,251,113,253,
  	114,255,115,257,116,259,117,261,118,263,119,265,120,267,121,269,122,271,
  	123,273,124,275,125,277,126,279,127,281,128,283,129,285,130,287,131,289,
  	132,291,133,293,134,295,135,297,136,299,137,301,138,303,139,305,140,307,
  	141,309,142,311,143,313,144,315,145,317,146,319,147,321,148,323,149,325,
  	150,327,151,329,152,331,153,333,154,335,155,337,156,339,157,341,158,343,
  	159,345,160,347,161,349,162,351,163,353,164,355,165,357,166,359,167,361,
  	168,363,169,365,170,367,171,369,172,371,173,373,174,375,175,377,176,1,
  	0,12,2,0,65,90,95,95,1,0,48,57,1,0,48,49,1,0,48,55,2,0,48,57,65,70,4,
  	0,10,10,13,13,39,39,92,92,3,0,73,73,77,77,81,81,4,0,66,66,68,68,76,76,
  	87,88,3,0,78,78,80,80,82,83,2,0,68,68,76,76,2,0,9,9,32,32,2,0,10,10,13,
  	13,2152,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,
  	0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,
  	0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,
  	1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,
  	0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,
  	0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,83,1,0,0,0,0,85,
  	1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,
  	0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,
  	0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,
  	0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,
  	0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,
  	0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,
  	0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,
  	0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,
  	0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,
  	0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,
  	0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,
  	0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,
  	0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,
  	0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,
  	0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,
  	0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,
  	0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,
  	0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,
  	0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,
  	0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,
  	0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,
  	0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,
  	0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,
  	0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,
  	0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,
  	0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,
  	0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,
  	0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,
  	0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,1,379,1,0,
  	0,0,3,381,1,0,0,0,5,383,1,0,0,0,7,385,1,0,0,0,9,387,1,0,0,0,11,389,1,
  	0,0,0,13,401,1,0,0,0,15,405,1,0,0,0,17,416,1,0,0,0,19,427,1,0,0,0,21,
  	439,1,0,0,0,23,456,1,0,0,0,25,466,1,0,0,0,27,478,1,0,0,0,29,493,1,0,0,
  	0,31,495,1,0,0,0,33,503,1,0,0,0,35,515,1,0,0,0,37,524,1,0,0,0,39,537,
  	1,0,0,0,41,550,1,0,0,0,43,563,1,0,0,0,45,576,1,0,0,0,47,589,1,0,0,0,49,
  	605,1,0,0,0,51,621,1,0,0,0,53,623,1,0,0,0,55,640,1,0,0,0,57,645,1,0,0,
  	0,59,651,1,0,0,0,61,653,1,0,0,0,63,655,1,0,0,0,65,661,1,0,0,0,67,666,
  	1,0,0,0,69,672,1,0,0,0,71,674,1,0,0,0,73,676,1,0,0,0,75,693,1,0,0,0,77,
  	702,1,0,0,0,79,719,1,0,0,0,81,740,1,0,0,0,83,751,1,0,0,0,85,753,1,0,0,
  	0,87,758,1,0,0,0,89,764,1,0,0,0,91,771,1,0,0,0,93,787,1,0,0,0,95,798,
  	1,0,0,0,97,818,1,0,0,0,99,838,1,0,0,0,101,840,1,0,0,0,103,863,1,0,0,0,
  	105,865,1,0,0,0,107,870,1,0,0,0,109,879,1,0,0,0,111,885,1,0,0,0,113,888,
  	1,0,0,0,115,895,1,0,0,0,117,906,1,0,0,0,119,914,1,0,0,0,121,928,1,0,0,
  	0,123,935,1,0,0,0,125,940,1,0,0,0,127,944,1,0,0,0,129,949,1,0,0,0,131,
  	959,1,0,0,0,133,967,1,0,0,0,135,974,1,0,0,0,137,985,1,0,0,0,139,992,1,
  	0,0,0,141,999,1,0,0,0,143,1010,1,0,0,0,145,1021,1,0,0,0,147,1025,1,0,
  	0,0,149,1034,1,0,0,0,151,1043,1,0,0,0,153,1056,1,0,0,0,155,1067,1,0,0,
  	0,157,1070,1,0,0,0,159,1077,1,0,0,0,161,1085,1,0,0,0,163,1248,1,0,0,0,
  	165,1250,1,0,0,0,167,1259,1,0,0,0,169,1306,1,0,0,0,171,1308,1,0,0,0,173,
  	1323,1,0,0,0,175,1329,1,0,0,0,177,1338,1,0,0,0,179,1346,1,0,0,0,181,1357,
  	1,0,0,0,183,1376,1,0,0,0,185,1383,1,0,0,0,187,1394,1,0,0,0,189,1403,1,
  	0,0,0,191,1409,1,0,0,0,193,1419,1,0,0,0,195,1429,1,0,0,0,197,1443,1,0,
  	0,0,199,1450,1,0,0,0,201,1460,1,0,0,0,203,1468,1,0,0,0,205,1476,1,0,0,
  	0,207,1488,1,0,0,0,209,1499,1,0,0,0,211,1512,1,0,0,0,213,1521,1,0,0,0,
  	215,1526,1,0,0,0,217,1535,1,0,0,0,219,1537,1,0,0,0,221,1548,1,0,0,0,223,
  	1563,1,0,0,0,225,1572,1,0,0,0,227,1577,1,0,0,0,229,1584,1,0,0,0,231,1595,
  	1,0,0,0,233,1609,1,0,0,0,235,1627,1,0,0,0,237,1636,1,0,0,0,239,1639,1,
  	0,0,0,241,1671,1,0,0,0,243,1673,1,0,0,0,245,1678,1,0,0,0,247,1687,1,0,
  	0,0,249,1694,1,0,0,0,251,1699,1,0,0,0,253,1710,1,0,0,0,255,1720,1,0,0,
  	0,257,1729,1,0,0,0,259,1743,1,0,0,0,261,1749,1,0,0,0,263,1752,1,0,0,0,
  	265,1756,1,0,0,0,267,1760,1,0,0,0,269,1764,1,0,0,0,271,1768,1,0,0,0,273,
  	1777,1,0,0,0,275,1783,1,0,0,0,277,1790,1,0,0,0,279,1793,1,0,0,0,281,1798,
  	1,0,0,0,283,1804,1,0,0,0,285,1809,1,0,0,0,287,1816,1,0,0,0,289,1821,1,
  	0,0,0,291,1830,1,0,0,0,293,1835,1,0,0,0,295,1844,1,0,0,0,297,1848,1,0,
  	0,0,299,1851,1,0,0,0,301,1859,1,0,0,0,303,1862,1,0,0,0,305,1865,1,0,0,
  	0,307,1871,1,0,0,0,309,1881,1,0,0,0,311,1888,1,0,0,0,313,1894,1,0,0,0,
  	315,1905,1,0,0,0,317,1914,1,0,0,0,319,1925,1,0,0,0,321,1929,1,0,0,0,323,
  	1943,1,0,0,0,325,1954,1,0,0,0,327,1956,1,0,0,0,329,1958,1,0,0,0,331,1960,
  	1,0,0,0,333,1963,1,0,0,0,335,1965,1,0,0,0,337,1967,1,0,0,0,339,1970,1,
  	0,0,0,341,1972,1,0,0,0,343,1974,1,0,0,0,345,1976,1,0,0,0,347,1978,1,0,
  	0,0,349,1980,1,0,0,0,351,1982,1,0,0,0,353,1985,1,0,0,0,355,1987,1,0,0,
  	0,357,1989,1,0,0,0,359,1992,1,0,0,0,361,1994,1,0,0,0,363,1996,1,0,0,0,
  	365,1999,1,0,0,0,367,2002,1,0,0,0,369,2004,1,0,0,0,371,2006,1,0,0,0,373,
  	2008,1,0,0,0,375,2011,1,0,0,0,377,2014,1,0,0,0,379,380,7,0,0,0,380,2,
  	1,0,0,0,381,382,7,1,0,0,382,4,1,0,0,0,383,384,7,2,0,0,384,6,1,0,0,0,385,
  	386,7,3,0,0,386,8,1,0,0,0,387,388,7,4,0,0,388,10,1,0,0,0,389,396,3,3,
  	1,0,390,392,3,343,171,0,391,390,1,0,0,0,391,392,1,0,0,0,392,393,1,0,0,
  	0,393,395,3,3,1,0,394,391,1,0,0,0,395,398,1,0,0,0,396,394,1,0,0,0,396,
  	397,1,0,0,0,397,12,1,0,0,0,398,396,1,0,0,0,399,402,3,367,183,0,400,402,
  	3,369,184,0,401,399,1,0,0,0,401,400,1,0,0,0,401,402,1,0,0,0,402,403,1,
  	0,0,0,403,404,3,11,5,0,404,14,1,0,0,0,405,406,5,50,0,0,406,407,5,35,0,
  	0,407,412,1,0,0,0,408,410,3,343,171,0,409,408,1,0,0,0,409,410,1,0,0,0,
  	410,411,1,0,0,0,411,413,3,5,2,0,412,409,1,0,0,0,413,414,1,0,0,0,414,412,
  	1,0,0,0,414,415,1,0,0,0,415,16,1,0,0,0,416,417,5,56,0,0,417,418,5,35,
  	0,0,418,423,1,0,0,0,419,421,3,343,171,0,420,419,1,0,0,0,420,421,1,0,0,
  	0,421,422,1,0,0,0,422,424,3,7,3,0,423,420,1,0,0,0,424,425,1,0,0,0,425,
  	423,1,0,0,0,425,426,1,0,0,0,426,18,1,0,0,0,427,428,5,49,0,0,428,429,5,
  	54,0,0,429,430,5,35,0,0,430,435,1,0,0,0,431,433,3,343,171,0,432,431,1,
  	0,0,0,432,433,1,0,0,0,433,434,1,0,0,0,434,436,3,9,4,0,435,432,1,0,0,0,
  	436,437,1,0,0,0,437,435,1,0,0,0,437,438,1,0,0,0,438,20,1,0,0,0,439,440,
  	3,13,6,0,440,441,3,325,162,0,441,444,3,11,5,0,442,443,5,69,0,0,443,445,
  	3,13,6,0,444,442,1,0,0,0,444,445,1,0,0,0,445,22,1,0,0,0,446,457,2,48,
  	49,0,447,448,5,70,0,0,448,449,5,65,0,0,449,450,5,76,0,0,450,451,5,83,
  	0,0,451,457,5,69,0,0,452,453,5,84,0,0,453,454,5,82,0,0,454,455,5,85,0,
  	0,455,457,5,69,0,0,456,446,1,0,0,0,456,447,1,0,0,0,456,452,1,0,0,0,457,
  	24,1,0,0,0,458,467,3,29,14,0,459,460,5,36,0,0,460,467,5,39,0,0,461,467,
  	5,34,0,0,462,463,5,36,0,0,463,464,3,9,4,0,464,465,3,9,4,0,465,467,1,0,
  	0,0,466,458,1,0,0,0,466,459,1,0,0,0,466,461,1,0,0,0,466,462,1,0,0,0,467,
  	26,1,0,0,0,468,479,3,29,14,0,469,479,5,39,0,0,470,471,5,36,0,0,471,479,
  	5,34,0,0,472,473,5,36,0,0,473,474,3,9,4,0,474,475,3,9,4,0,475,476,3,9,
  	4,0,476,477,3,9,4,0,477,479,1,0,0,0,478,468,1,0,0,0,478,469,1,0,0,0,478,
  	470,1,0,0,0,478,472,1,0,0,0,479,28,1,0,0,0,480,494,8,5,0,0,481,482,5,
  	36,0,0,482,494,5,36,0,0,483,484,5,36,0,0,484,494,5,76,0,0,485,486,5,36,
  	0,0,486,494,5,78,0,0,487,488,5,36,0,0,488,494,5,80,0,0,489,490,5,36,0,
  	0,490,494,5,82,0,0,491,492,5,36,0,0,492,494,5,84,0,0,493,480,1,0,0,0,
  	493,481,1,0,0,0,493,483,1,0,0,0,493,485,1,0,0,0,493,487,1,0,0,0,493,489,
  	1,0,0,0,493,491,1,0,0,0,494,30,1,0,0,0,495,497,5,39,0,0,496,498,3,25,
  	12,0,497,496,1,0,0,0,498,499,1,0,0,0,499,497,1,0,0,0,499,500,1,0,0,0,
  	500,501,1,0,0,0,501,502,5,39,0,0,502,32,1,0,0,0,503,505,5,34,0,0,504,
  	506,3,27,13,0,505,504,1,0,0,0,506,507,1,0,0,0,507,505,1,0,0,0,507,508,
  	1,0,0,0,508,509,1,0,0,0,509,510,5,34,0,0,510,34,1,0,0,0,511,516,3,93,
  	46,0,512,516,5,84,0,0,513,514,5,76,0,0,514,516,5,84,0,0,515,511,1,0,0,
  	0,515,512,1,0,0,0,515,513,1,0,0,0,516,517,1,0,0,0,517,520,3,345,172,0,
  	518,521,3,367,183,0,519,521,3,369,184,0,520,518,1,0,0,0,520,519,1,0,0,
  	0,520,521,1,0,0,0,521,522,1,0,0,0,522,523,3,39,19,0,523,36,1,0,0,0,524,
  	528,3,11,5,0,525,526,3,325,162,0,526,527,3,11,5,0,527,529,1,0,0,0,528,
  	525,1,0,0,0,528,529,1,0,0,0,529,38,1,0,0,0,530,538,3,41,20,0,531,538,
  	3,43,21,0,532,538,3,45,22,0,533,538,3,47,23,0,534,538,3,49,24,0,535,538,
  	3,51,25,0,536,538,3,53,26,0,537,530,1,0,0,0,537,531,1,0,0,0,537,532,1,
  	0,0,0,537,533,1,0,0,0,537,534,1,0,0,0,537,535,1,0,0,0,537,536,1,0,0,0,
  	538,40,1,0,0,0,539,540,3,37,18,0,540,541,5,100,0,0,541,551,1,0,0,0,542,
  	543,3,11,5,0,543,545,5,100,0,0,544,546,3,343,171,0,545,544,1,0,0,0,545,
  	546,1,0,0,0,546,548,1,0,0,0,547,549,3,43,21,0,548,547,1,0,0,0,548,549,
  	1,0,0,0,549,551,1,0,0,0,550,539,1,0,0,0,550,542,1,0,0,0,551,42,1,0,0,
  	0,552,553,3,37,18,0,553,554,5,104,0,0,554,564,1,0,0,0,555,556,3,11,5,
  	0,556,558,5,104,0,0,557,559,3,343,171,0,558,557,1,0,0,0,558,559,1,0,0,
  	0,559,561,1,0,0,0,560,562,3,45,22,0,561,560,1,0,0,0,561,562,1,0,0,0,562,
  	564,1,0,0,0,563,552,1,0,0,0,563,555,1,0,0,0,564,44,1,0,0,0,565,566,3,
  	37,18,0,566,567,5,109,0,0,567,577,1,0,0,0,568,569,3,11,5,0,569,571,5,
  	109,0,0,570,572,3,343,171,0,571,570,1,0,0,0,571,572,1,0,0,0,572,574,1,
  	0,0,0,573,575,3,47,23,0,574,573,1,0,0,0,574,575,1,0,0,0,575,577,1,0,0,
  	0,576,565,1,0,0,0,576,568,1,0,0,0,577,46,1,0,0,0,578,579,3,37,18,0,579,
  	580,5,115,0,0,580,590,1,0,0,0,581,582,3,11,5,0,582,584,5,115,0,0,583,
  	585,3,343,171,0,584,583,1,0,0,0,584,585,1,0,0,0,585,587,1,0,0,0,586,588,
  	3,49,24,0,587,586,1,0,0,0,587,588,1,0,0,0,588,590,1,0,0,0,589,578,1,0,
  	0,0,589,581,1,0,0,0,590,48,1,0,0,0,591,592,3,37,18,0,592,593,5,109,0,
  	0,593,594,5,115,0,0,594,606,1,0,0,0,595,596,3,11,5,0,596,597,5,109,0,
  	0,597,598,5,115,0,0,598,600,1,0,0,0,599,601,3,343,171,0,600,599,1,0,0,
  	0,600,601,1,0,0,0,601,603,1,0,0,0,602,604,3,51,25,0,603,602,1,0,0,0,603,
  	604,1,0,0,0,604,606,1,0,0,0,605,591,1,0,0,0,605,595,1,0,0,0,606,50,1,
  	0,0,0,607,608,3,37,18,0,608,609,5,117,0,0,609,610,5,115,0,0,610,622,1,
  	0,0,0,611,612,3,11,5,0,612,613,5,117,0,0,613,614,5,115,0,0,614,616,1,
  	0,0,0,615,617,3,343,171,0,616,615,1,0,0,0,616,617,1,0,0,0,617,619,1,0,
  	0,0,618,620,3,53,26,0,619,618,1,0,0,0,619,620,1,0,0,0,620,622,1,0,0,0,
  	621,607,1,0,0,0,621,611,1,0,0,0,622,52,1,0,0,0,623,624,3,37,18,0,624,
  	625,5,110,0,0,625,626,5,115,0,0,626,54,1,0,0,0,627,641,3,97,48,0,628,
  	629,5,76,0,0,629,630,5,84,0,0,630,631,5,73,0,0,631,632,5,77,0,0,632,633,
  	5,69,0,0,633,634,5,95,0,0,634,635,5,79,0,0,635,636,5,70,0,0,636,637,5,
  	95,0,0,637,638,5,68,0,0,638,639,5,65,0,0,639,641,5,89,0,0,640,627,1,0,
  	0,0,640,628,1,0,0,0,641,642,1,0,0,0,642,643,3,345,172,0,643,644,3,57,
  	28,0,644,56,1,0,0,0,645,646,3,59,29,0,646,647,5,58,0,0,647,648,3,61,30,
  	0,648,649,5,58,0,0,649,650,3,63,31,0,650,58,1,0,0,0,651,652,3,11,5,0,
  	652,60,1,0,0,0,653,654,3,11,5,0,654,62,1,0,0,0,655,656,3,37,18,0,656,
  	64,1,0,0,0,657,662,3,95,47,0,658,662,5,68,0,0,659,660,5,76,0,0,660,662,
  	5,68,0,0,661,657,1,0,0,0,661,658,1,0,0,0,661,659,1,0,0,0,662,663,1,0,
  	0,0,663,664,3,345,172,0,664,665,3,67,33,0,665,66,1,0,0,0,666,667,3,69,
  	34,0,667,668,3,369,184,0,668,669,3,71,35,0,669,670,3,369,184,0,670,671,
  	3,73,36,0,671,68,1,0,0,0,672,673,3,11,5,0,673,70,1,0,0,0,674,675,3,11,
  	5,0,675,72,1,0,0,0,676,677,3,11,5,0,677,74,1,0,0,0,678,694,3,99,49,0,
  	679,680,5,76,0,0,680,681,5,68,0,0,681,682,5,65,0,0,682,683,5,84,0,0,683,
  	684,5,69,0,0,684,685,5,95,0,0,685,686,5,65,0,0,686,687,5,78,0,0,687,688,
  	5,68,0,0,688,689,5,95,0,0,689,690,5,84,0,0,690,691,5,73,0,0,691,692,5,
  	77,0,0,692,694,5,69,0,0,693,678,1,0,0,0,693,679,1,0,0,0,694,695,1,0,0,
  	0,695,696,3,345,172,0,696,697,3,67,33,0,697,698,3,369,184,0,698,699,3,
  	57,28,0,699,76,1,0,0,0,700,703,3,79,39,0,701,703,3,81,40,0,702,700,1,
  	0,0,0,702,701,1,0,0,0,703,78,1,0,0,0,704,705,5,83,0,0,705,706,5,73,0,
  	0,706,707,5,78,0,0,707,720,5,84,0,0,708,709,5,73,0,0,709,710,5,78,0,0,
  	710,720,5,84,0,0,711,712,5,68,0,0,712,713,5,73,0,0,713,714,5,78,0,0,714,
  	720,5,84,0,0,715,716,5,76,0,0,716,717,5,73,0,0,717,718,5,78,0,0,718,720,
  	5,84,0,0,719,704,1,0,0,0,719,708,1,0,0,0,719,711,1,0,0,0,719,715,1,0,
  	0,0,720,80,1,0,0,0,721,722,5,85,0,0,722,723,5,83,0,0,723,724,5,73,0,0,
  	724,725,5,78,0,0,725,741,5,84,0,0,726,727,5,85,0,0,727,728,5,73,0,0,728,
  	729,5,78,0,0,729,741,5,84,0,0,730,731,5,85,0,0,731,732,5,68,0,0,732,733,
  	5,73,0,0,733,734,5,78,0,0,734,741,5,84,0,0,735,736,5,85,0,0,736,737,5,
  	76,0,0,737,738,5,73,0,0,738,739,5,78,0,0,739,741,5,84,0,0,740,721,1,0,
  	0,0,740,726,1,0,0,0,740,730,1,0,0,0,740,735,1,0,0,0,741,82,1,0,0,0,742,
  	743,5,82,0,0,743,744,5,69,0,0,744,745,5,65,0,0,745,752,5,76,0,0,746,747,
  	5,76,0,0,747,748,5,82,0,0,748,749,5,69,0,0,749,750,5,65,0,0,750,752,5,
  	76,0,0,751,742,1,0,0,0,751,746,1,0,0,0,752,84,1,0,0,0,753,754,5,67,0,
  	0,754,755,5,72,0,0,755,756,5,65,0,0,756,757,5,82,0,0,757,86,1,0,0,0,758,
  	759,5,87,0,0,759,760,5,67,0,0,760,761,5,72,0,0,761,762,5,65,0,0,762,763,
  	5,82,0,0,763,88,1,0,0,0,764,769,3,157,78,0,765,766,5,91,0,0,766,767,3,
  	11,5,0,767,768,5,93,0,0,768,770,1,0,0,0,769,765,1,0,0,0,769,770,1,0,0,
  	0,770,90,1,0,0,0,771,776,3,159,79,0,772,773,5,91,0,0,773,774,3,11,5,0,
  	774,775,5,93,0,0,775,777,1,0,0,0,776,772,1,0,0,0,776,777,1,0,0,0,777,
  	92,1,0,0,0,778,779,5,84,0,0,779,780,5,73,0,0,780,781,5,77,0,0,781,788,
  	5,69,0,0,782,783,5,76,0,0,783,784,5,84,0,0,784,785,5,73,0,0,785,786,5,
  	77,0,0,786,788,5,69,0,0,787,778,1,0,0,0,787,782,1,0,0,0,788,94,1,0,0,
  	0,789,790,5,68,0,0,790,791,5,65,0,0,791,792,5,84,0,0,792,799,5,69,0,0,
  	793,794,5,76,0,0,794,795,5,68,0,0,795,796,5,65,0,0,796,797,5,84,0,0,797,
  	799,5,69,0,0,798,789,1,0,0,0,798,793,1,0,0,0,799,96,1,0,0,0,800,801,5,
  	84,0,0,801,802,5,73,0,0,802,803,5,77,0,0,803,804,5,69,0,0,804,805,5,95,
  	0,0,805,806,5,79,0,0,806,807,5,70,0,0,807,808,5,95,0,0,808,809,5,68,0,
  	0,809,810,5,65,0,0,810,819,5,89,0,0,811,812,5,84,0,0,812,813,5,79,0,0,
  	813,819,5,68,0,0,814,815,5,76,0,0,815,816,5,84,0,0,816,817,5,79,0,0,817,
  	819,5,68,0,0,818,800,1,0,0,0,818,811,1,0,0,0,818,814,1,0,0,0,819,98,1,
  	0,0,0,820,821,5,68,0,0,821,822,5,65,0,0,822,823,5,84,0,0,823,824,5,69,
  	0,0,824,825,5,95,0,0,825,826,5,65,0,0,826,827,5,78,0,0,827,828,5,68,0,
  	0,828,829,5,95,0,0,829,830,5,84,0,0,830,831,5,73,0,0,831,832,5,77,0,0,
  	832,839,5,69,0,0,833,834,5,68,0,0,834,839,5,84,0,0,835,836,5,76,0,0,836,
  	837,5,68,0,0,837,839,5,84,0,0,838,820,1,0,0,0,838,833,1,0,0,0,838,835,
  	1,0,0,0,839,100,1,0,0,0,840,841,5,66,0,0,841,842,5,79,0,0,842,843,5,79,
  	0,0,843,844,5,76,0,0,844,102,1,0,0,0,845,846,5,66,0,0,846,847,5,89,0,
  	0,847,848,5,84,0,0,848,864,5,69,0,0,849,850,5,87,0,0,850,851,5,79,0,0,
  	851,852,5,82,0,0,852,864,5,68,0,0,853,854,5,68,0,0,854,855,5,87,0,0,855,
  	856,5,79,0,0,856,857,5,82,0,0,857,864,5,68,0,0,858,859,5,76,0,0,859,860,
  	5,87,0,0,860,861,5,79,0,0,861,862,5,82,0,0,862,864,5,68,0,0,863,845,1,
  	0,0,0,863,849,1,0,0,0,863,853,1,0,0,0,863,858,1,0,0,0,864,104,1,0,0,0,
  	865,866,5,84,0,0,866,867,5,89,0,0,867,868,5,80,0,0,868,869,5,69,0,0,869,
  	106,1,0,0,0,870,871,5,69,0,0,871,872,5,78,0,0,872,873,5,68,0,0,873,874,
  	5,95,0,0,874,875,5,84,0,0,875,876,5,89,0,0,876,877,5,80,0,0,877,878,5,
  	69,0,0,878,108,1,0,0,0,879,880,5,65,0,0,880,881,5,82,0,0,881,882,5,82,
  	0,0,882,883,5,65,0,0,883,884,5,89,0,0,884,110,1,0,0,0,885,886,5,79,0,
  	0,886,887,5,70,0,0,887,112,1,0,0,0,888,889,5,83,0,0,889,890,5,84,0,0,
  	890,891,5,82,0,0,891,892,5,85,0,0,892,893,5,67,0,0,893,894,5,84,0,0,894,
  	114,1,0,0,0,895,896,5,69,0,0,896,897,5,78,0,0,897,898,5,68,0,0,898,899,
  	5,95,0,0,899,900,5,83,0,0,900,901,5,84,0,0,901,902,5,82,0,0,902,903,5,
  	85,0,0,903,904,5,67,0,0,904,905,5,84,0,0,905,116,1,0,0,0,906,907,5,79,
  	0,0,907,908,5,86,0,0,908,909,5,69,0,0,909,910,5,82,0,0,910,911,5,76,0,
  	0,911,912,5,65,0,0,912,913,5,80,0,0,913,118,1,0,0,0,914,915,5,37,0,0,
  	915,917,7,6,0,0,916,918,7,7,0,0,917,916,1,0,0,0,917,918,1,0,0,0,918,919,
  	1,0,0,0,919,925,3,11,5,0,920,921,3,325,162,0,921,922,3,11,5,0,922,924,
  	1,0,0,0,923,920,1,0,0,0,924,927,1,0,0,0,925,923,1,0,0,0,925,926,1,0,0,
  	0,926,120,1,0,0,0,927,925,1,0,0,0,928,929,5,82,0,0,929,930,5,69,0,0,930,
  	931,5,70,0,0,931,932,5,95,0,0,932,933,5,84,0,0,933,934,5,79,0,0,934,122,
  	1,0,0,0,935,936,5,78,0,0,936,937,5,85,0,0,937,938,5,76,0,0,938,939,5,
  	76,0,0,939,124,1,0,0,0,940,941,5,82,0,0,941,942,5,69,0,0,942,943,5,70,
  	0,0,943,126,1,0,0,0,944,945,5,84,0,0,945,946,5,72,0,0,946,947,5,73,0,
  	0,947,948,5,83,0,0,948,128,1,0,0,0,949,950,5,86,0,0,950,951,5,65,0,0,
  	951,952,5,82,0,0,952,953,5,95,0,0,953,954,5,73,0,0,954,955,5,78,0,0,955,
  	956,5,80,0,0,956,957,5,85,0,0,957,958,5,84,0,0,958,130,1,0,0,0,959,960,
  	5,69,0,0,960,961,5,78,0,0,961,962,5,68,0,0,962,963,5,95,0,0,963,964,5,
  	86,0,0,964,965,5,65,0,0,965,966,5,82,0,0,966,132,1,0,0,0,967,968,5,82,
  	0,0,968,969,5,69,0,0,969,970,5,84,0,0,970,971,5,65,0,0,971,972,5,73,0,
  	0,972,973,5,78,0,0,973,134,1,0,0,0,974,975,5,78,0,0,975,976,5,79,0,0,
  	976,977,5,78,0,0,977,978,5,95,0,0,978,979,5,82,0,0,979,980,5,69,0,0,980,
  	981,5,84,0,0,981,982,5,65,0,0,982,983,5,73,0,0,983,984,5,78,0,0,984,136,
  	1,0,0,0,985,986,5,82,0,0,986,987,5,95,0,0,987,988,5,69,0,0,988,989,5,
  	68,0,0,989,990,5,71,0,0,990,991,5,69,0,0,991,138,1,0,0,0,992,993,5,70,
  	0,0,993,994,5,95,0,0,994,995,5,69,0,0,995,996,5,68,0,0,996,997,5,71,0,
  	0,997,998,5,69,0,0,998,140,1,0,0,0,999,1000,5,86,0,0,1000,1001,5,65,0,
  	0,1001,1002,5,82,0,0,1002,1003,5,95,0,0,1003,1004,5,79,0,0,1004,1005,
  	5,85,0,0,1005,1006,5,84,0,0,1006,1007,5,80,0,0,1007,1008,5,85,0,0,1008,
  	1009,5,84,0,0,1009,142,1,0,0,0,1010,1011,5,86,0,0,1011,1012,5,65,0,0,
  	1012,1013,5,82,0,0,1013,1014,5,95,0,0,1014,1015,5,73,0,0,1015,1016,5,
  	78,0,0,1016,1017,5,95,0,0,1017,1018,5,79,0,0,1018,1019,5,85,0,0,1019,
  	1020,5,84,0,0,1020,144,1,0,0,0,1021,1022,5,86,0,0,1022,1023,5,65,0,0,
  	1023,1024,5,82,0,0,1024,146,1,0,0,0,1025,1026,5,67,0,0,1026,1027,5,79,
  	0,0,1027,1028,5,78,0,0,1028,1029,5,83,0,0,1029,1030,5,84,0,0,1030,1031,
  	5,65,0,0,1031,1032,5,78,0,0,1032,1033,5,84,0,0,1033,148,1,0,0,0,1034,
  	1035,5,86,0,0,1035,1036,5,65,0,0,1036,1037,5,82,0,0,1037,1038,5,95,0,
  	0,1038,1039,5,84,0,0,1039,1040,5,69,0,0,1040,1041,5,77,0,0,1041,1042,
  	5,80,0,0,1042,150,1,0,0,0,1043,1044,5,86,0,0,1044,1045,5,65,0,0,1045,
  	1046,5,82,0,0,1046,1047,5,95,0,0,1047,1048,5,69,0,0,1048,1049,5,88,0,
  	0,1049,1050,5,84,0,0,1050,1051,5,69,0,0,1051,1052,5,82,0,0,1052,1053,
  	5,78,0,0,1053,1054,5,65,0,0,1054,1055,5,76,0,0,1055,152,1,0,0,0,1056,
  	1057,5,86,0,0,1057,1058,5,65,0,0,1058,1059,5,82,0,0,1059,1060,5,95,0,
  	0,1060,1061,5,71,0,0,1061,1062,5,76,0,0,1062,1063,5,79,0,0,1063,1064,
  	5,66,0,0,1064,1065,5,65,0,0,1065,1066,5,76,0,0,1066,154,1,0,0,0,1067,
  	1068,5,65,0,0,1068,1069,5,84,0,0,1069,156,1,0,0,0,1070,1071,5,83,0,0,
  	1071,1072,5,84,0,0,1072,1073,5,82,0,0,1073,1074,5,73,0,0,1074,1075,5,
  	78,0,0,1075,1076,5,71,0,0,1076,158,1,0,0,0,1077,1078,5,87,0,0,1078,1079,
  	5,83,0,0,1079,1080,5,84,0,0,1080,1081,5,82,0,0,1081,1082,5,73,0,0,1082,
  	1083,5,78,0,0,1083,1084,5,71,0,0,1084,160,1,0,0,0,1085,1086,5,37,0,0,
  	1086,1087,7,6,0,0,1087,1088,5,42,0,0,1088,162,1,0,0,0,1089,1090,5,84,
  	0,0,1090,1091,5,82,0,0,1091,1092,5,85,0,0,1092,1093,5,78,0,0,1093,1249,
  	5,67,0,0,1094,1095,5,65,0,0,1095,1096,5,66,0,0,1096,1249,5,83,0,0,1097,
  	1098,5,83,0,0,1098,1099,5,81,0,0,1099,1100,5,82,0,0,1100,1249,5,84,0,
  	0,1101,1102,5,76,0,0,1102,1249,5,78,0,0,1103,1104,5,76,0,0,1104,1105,
  	5,79,0,0,1105,1249,5,71,0,0,1106,1107,5,69,0,0,1107,1108,5,88,0,0,1108,
  	1249,5,80,0,0,1109,1110,5,83,0,0,1110,1111,5,73,0,0,1111,1249,5,78,0,
  	0,1112,1113,5,67,0,0,1113,1114,5,79,0,0,1114,1249,5,83,0,0,1115,1116,
  	5,84,0,0,1116,1117,5,65,0,0,1117,1249,5,78,0,0,1118,1119,5,65,0,0,1119,
  	1120,5,83,0,0,1120,1121,5,73,0,0,1121,1249,5,78,0,0,1122,1123,5,65,0,
  	0,1123,1124,5,67,0,0,1124,1125,5,79,0,0,1125,1249,5,83,0,0,1126,1127,
  	5,65,0,0,1127,1128,5,84,0,0,1128,1129,5,65,0,0,1129,1249,5,78,0,0,1130,
  	1131,5,65,0,0,1131,1132,5,84,0,0,1132,1133,5,65,0,0,1133,1134,5,78,0,
  	0,1134,1135,5,50,0,0,1135,1249,5,32,0,0,1136,1137,5,65,0,0,1137,1138,
  	5,68,0,0,1138,1249,5,68,0,0,1139,1140,5,83,0,0,1140,1141,5,85,0,0,1141,
  	1249,5,66,0,0,1142,1143,5,77,0,0,1143,1144,5,85,0,0,1144,1249,5,76,0,
  	0,1145,1146,5,68,0,0,1146,1147,5,73,0,0,1147,1249,5,86,0,0,1148,1249,
  	3,267,133,0,1149,1150,5,69,0,0,1150,1151,5,88,0,0,1151,1152,5,80,0,0,
  	1152,1249,5,84,0,0,1153,1154,5,77,0,0,1154,1155,5,79,0,0,1155,1156,5,
  	86,0,0,1156,1157,5,69,0,0,1157,1249,5,32,0,0,1158,1159,5,83,0,0,1159,
  	1160,5,72,0,0,1160,1249,5,76,0,0,1161,1162,5,83,0,0,1162,1163,5,72,0,
  	0,1163,1249,5,82,0,0,1164,1165,5,82,0,0,1165,1166,5,79,0,0,1166,1249,
  	5,76,0,0,1167,1168,5,82,0,0,1168,1169,5,79,0,0,1169,1249,5,82,0,0,1170,
  	1249,3,265,132,0,1171,1249,3,261,130,0,1172,1249,3,263,131,0,1173,1249,
  	3,269,134,0,1174,1175,5,83,0,0,1175,1176,5,69,0,0,1176,1249,5,76,0,0,
  	1177,1178,5,77,0,0,1178,1179,5,65,0,0,1179,1249,5,88,0,0,1180,1181,5,
  	77,0,0,1181,1182,5,73,0,0,1182,1249,5,78,0,0,1183,1184,5,76,0,0,1184,
  	1185,5,73,0,0,1185,1186,5,77,0,0,1186,1187,5,73,0,0,1187,1249,5,84,0,
  	0,1188,1189,5,77,0,0,1189,1190,5,85,0,0,1190,1191,5,88,0,0,1191,1249,
  	5,32,0,0,1192,1193,5,71,0,0,1193,1249,5,84,0,0,1194,1195,5,71,0,0,1195,
  	1249,5,69,0,0,1196,1197,5,69,0,0,1197,1249,5,81,0,0,1198,1199,5,76,0,
  	0,1199,1249,5,69,0,0,1200,1201,5,76,0,0,1201,1249,5,84,0,0,1202,1203,
  	5,78,0,0,1203,1249,5,69,0,0,1204,1205,5,76,0,0,1205,1206,5,69,0,0,1206,
  	1249,5,78,0,0,1207,1208,5,76,0,0,1208,1209,5,69,0,0,1209,1210,5,70,0,
  	0,1210,1249,5,84,0,0,1211,1212,5,82,0,0,1212,1213,5,73,0,0,1213,1214,
  	5,71,0,0,1214,1215,5,72,0,0,1215,1249,5,84,0,0,1216,1217,5,77,0,0,1217,
  	1218,5,73,0,0,1218,1249,5,68,0,0,1219,1220,5,67,0,0,1220,1221,5,79,0,
  	0,1221,1222,5,78,0,0,1222,1223,5,67,0,0,1223,1224,5,65,0,0,1224,1249,
  	5,84,0,0,1225,1226,5,73,0,0,1226,1227,5,78,0,0,1227,1228,5,83,0,0,1228,
  	1229,5,69,0,0,1229,1230,5,82,0,0,1230,1249,5,84,0,0,1231,1232,5,68,0,
  	0,1232,1233,5,69,0,0,1233,1234,5,76,0,0,1234,1235,5,69,0,0,1235,1236,
  	5,84,0,0,1236,1249,5,69,0,0,1237,1238,5,82,0,0,1238,1239,5,69,0,0,1239,
  	1240,5,80,0,0,1240,1241,5,76,0,0,1241,1242,5,65,0,0,1242,1243,5,67,0,
  	0,1243,1249,5,69,0,0,1244,1245,5,70,0,0,1245,1246,5,73,0,0,1246,1247,
  	5,78,0,0,1247,1249,5,68,0,0,1248,1089,1,0,0,0,1248,1094,1,0,0,0,1248,
  	1097,1,0,0,0,1248,1101,1,0,0,0,1248,1103,1,0,0,0,1248,1106,1,0,0,0,1248,
  	1109,1,0,0,0,1248,1112,1,0,0,0,1248,1115,1,0,0,0,1248,1118,1,0,0,0,1248,
  	1122,1,0,0,0,1248,1126,1,0,0,0,1248,1130,1,0,0,0,1248,1136,1,0,0,0,1248,
  	1139,1,0,0,0,1248,1142,1,0,0,0,1248,1145,1,0,0,0,1248,1148,1,0,0,0,1248,
  	1149,1,0,0,0,1248,1153,1,0,0,0,1248,1158,1,0,0,0,1248,1161,1,0,0,0,1248,
  	1164,1,0,0,0,1248,1167,1,0,0,0,1248,1170,1,0,0,0,1248,1171,1,0,0,0,1248,
  	1172,1,0,0,0,1248,1173,1,0,0,0,1248,1174,1,0,0,0,1248,1177,1,0,0,0,1248,
  	1180,1,0,0,0,1248,1183,1,0,0,0,1248,1188,1,0,0,0,1248,1192,1,0,0,0,1248,
  	1194,1,0,0,0,1248,1196,1,0,0,0,1248,1198,1,0,0,0,1248,1200,1,0,0,0,1248,
  	1202,1,0,0,0,1248,1204,1,0,0,0,1248,1207,1,0,0,0,1248,1211,1,0,0,0,1248,
  	1216,1,0,0,0,1248,1219,1,0,0,0,1248,1225,1,0,0,0,1248,1231,1,0,0,0,1248,
  	1237,1,0,0,0,1248,1244,1,0,0,0,1249,164,1,0,0,0,1250,1251,5,70,0,0,1251,
  	1252,5,85,0,0,1252,1253,5,78,0,0,1253,1254,5,67,0,0,1254,1255,5,84,0,
  	0,1255,1256,5,73,0,0,1256,1257,5,79,0,0,1257,1258,5,78,0,0,1258,166,1,
  	0,0,0,1259,1260,5,69,0,0,1260,1261,5,78,0,0,1261,1262,5,68,0,0,1262,1263,
  	5,95,0,0,1263,1264,5,70,0,0,1264,1265,5,85,0,0,1265,1266,5,78,0,0,1266,
  	1267,5,67,0,0,1267,1268,5,84,0,0,1268,1269,5,73,0,0,1269,1270,5,79,0,
  	0,1270,1271,5,78,0,0,1271,168,1,0,0,0,1272,1273,5,83,0,0,1273,1307,5,
  	82,0,0,1274,1275,5,82,0,0,1275,1307,5,83,0,0,1276,1277,5,82,0,0,1277,
  	1278,5,95,0,0,1278,1279,5,84,0,0,1279,1280,5,82,0,0,1280,1281,5,73,0,
  	0,1281,1307,5,71,0,0,1282,1283,5,70,0,0,1283,1284,5,95,0,0,1284,1285,
  	5,84,0,0,1285,1286,5,82,0,0,1286,1287,5,73,0,0,1287,1307,5,71,0,0,1288,
  	1289,5,67,0,0,1289,1290,5,84,0,0,1290,1307,5,85,0,0,1291,1292,5,67,0,
  	0,1292,1293,5,84,0,0,1293,1307,5,68,0,0,1294,1295,5,67,0,0,1295,1296,
  	5,84,0,0,1296,1297,5,85,0,0,1297,1307,5,68,0,0,1298,1299,5,84,0,0,1299,
  	1307,5,80,0,0,1300,1301,5,84,0,0,1301,1302,5,79,0,0,1302,1307,5,78,0,
  	0,1303,1304,5,84,0,0,1304,1305,5,79,0,0,1305,1307,5,70,0,0,1306,1272,
  	1,0,0,0,1306,1274,1,0,0,0,1306,1276,1,0,0,0,1306,1282,1,0,0,0,1306,1288,
  	1,0,0,0,1306,1291,1,0,0,0,1306,1294,1,0,0,0,1306,1298,1,0,0,0,1306,1300,
  	1,0,0,0,1306,1303,1,0,0,0,1307,170,1,0,0,0,1308,1309,5,70,0,0,1309,1310,
  	5,85,0,0,1310,1311,5,78,0,0,1311,1312,5,67,0,0,1312,1313,5,84,0,0,1313,
  	1314,5,73,0,0,1314,1315,5,79,0,0,1315,1316,5,78,0,0,1316,1317,5,95,0,
  	0,1317,1318,5,66,0,0,1318,1319,5,76,0,0,1319,1320,5,79,0,0,1320,1321,
  	5,67,0,0,1321,1322,5,75,0,0,1322,172,1,0,0,0,1323,1324,5,70,0,0,1324,
  	1325,5,73,0,0,1325,1326,5,78,0,0,1326,1327,5,65,0,0,1327,1328,5,76,0,
  	0,1328,174,1,0,0,0,1329,1330,5,65,0,0,1330,1331,5,66,0,0,1331,1332,5,
  	83,0,0,1332,1333,5,84,0,0,1333,1334,5,82,0,0,1334,1335,5,65,0,0,1335,
  	1336,5,67,0,0,1336,1337,5,84,0,0,1337,176,1,0,0,0,1338,1339,5,69,0,0,
  	1339,1340,5,88,0,0,1340,1341,5,84,0,0,1341,1342,5,69,0,0,1342,1343,5,
  	78,0,0,1343,1344,5,68,0,0,1344,1345,5,83,0,0,1345,178,1,0,0,0,1346,1347,
  	5,73,0,0,1347,1348,5,77,0,0,1348,1349,5,80,0,0,1349,1350,5,76,0,0,1350,
  	1351,5,69,0,0,1351,1352,5,77,0,0,1352,1353,5,69,0,0,1353,1354,5,78,0,
  	0,1354,1355,5,84,0,0,1355,1356,5,83,0,0,1356,180,1,0,0,0,1357,1358,5,
  	69,0,0,1358,1359,5,78,0,0,1359,1360,5,68,0,0,1360,1361,5,95,0,0,1361,
  	1362,5,70,0,0,1362,1363,5,85,0,0,1363,1364,5,78,0,0,1364,1365,5,67,0,
  	0,1365,1366,5,84,0,0,1366,1367,5,73,0,0,1367,1368,5,79,0,0,1368,1369,
  	5,78,0,0,1369,1370,5,95,0,0,1370,1371,5,66,0,0,1371,1372,5,76,0,0,1372,
  	1373,5,79,0,0,1373,1374,5,67,0,0,1374,1375,5,75,0,0,1375,182,1,0,0,0,
  	1376,1377,5,77,0,0,1377,1378,5,69,0,0,1378,1379,5,84,0,0,1379,1380,5,
  	72,0,0,1380,1381,5,79,0,0,1381,1382,5,68,0,0,1382,184,1,0,0,0,1383,1384,
  	5,69,0,0,1384,1385,5,78,0,0,1385,1386,5,68,0,0,1386,1387,5,95,0,0,1387,
  	1388,5,77,0,0,1388,1389,5,69,0,0,1389,1390,5,84,0,0,1390,1391,5,72,0,
  	0,1391,1392,5,79,0,0,1392,1393,5,68,0,0,1393,186,1,0,0,0,1394,1395,5,
  	79,0,0,1395,1396,5,86,0,0,1396,1397,5,69,0,0,1397,1398,5,82,0,0,1398,
  	1399,5,82,0,0,1399,1400,5,73,0,0,1400,1401,5,68,0,0,1401,1402,5,69,0,
  	0,1402,188,1,0,0,0,1403,1404,5,67,0,0,1404,1405,5,76,0,0,1405,1406,5,
  	65,0,0,1406,1407,5,83,0,0,1407,1408,5,83,0,0,1408,190,1,0,0,0,1409,1410,
  	5,69,0,0,1410,1411,5,78,0,0,1411,1412,5,68,0,0,1412,1413,5,95,0,0,1413,
  	1414,5,67,0,0,1414,1415,5,76,0,0,1415,1416,5,65,0,0,1416,1417,5,83,0,
  	0,1417,1418,5,83,0,0,1418,192,1,0,0,0,1419,1420,5,73,0,0,1420,1421,5,
  	78,0,0,1421,1422,5,84,0,0,1422,1423,5,69,0,0,1423,1424,5,82,0,0,1424,
  	1425,5,70,0,0,1425,1426,5,65,0,0,1426,1427,5,67,0,0,1427,1428,5,69,0,
  	0,1428,194,1,0,0,0,1429,1430,5,69,0,0,1430,1431,5,78,0,0,1431,1432,5,
  	68,0,0,1432,1433,5,95,0,0,1433,1434,5,73,0,0,1434,1435,5,78,0,0,1435,
  	1436,5,84,0,0,1436,1437,5,69,0,0,1437,1438,5,82,0,0,1438,1439,5,70,0,
  	0,1439,1440,5,65,0,0,1440,1441,5,67,0,0,1441,1442,5,69,0,0,1442,196,1,
  	0,0,0,1443,1444,5,80,0,0,1444,1445,5,85,0,0,1445,1446,5,66,0,0,1446,1447,
  	5,76,0,0,1447,1448,5,73,0,0,1448,1449,5,67,0,0,1449,198,1,0,0,0,1450,
  	1451,5,80,0,0,1451,1452,5,82,0,0,1452,1453,5,79,0,0,1453,1454,5,84,0,
  	0,1454,1455,5,69,0,0,1455,1456,5,67,0,0,1456,1457,5,84,0,0,1457,1458,
  	5,69,0,0,1458,1459,5,68,0,0,1459,200,1,0,0,0,1460,1461,5,80,0,0,1461,
  	1462,5,82,0,0,1462,1463,5,73,0,0,1463,1464,5,86,0,0,1464,1465,5,65,0,
  	0,1465,1466,5,84,0,0,1466,1467,5,69,0,0,1467,202,1,0,0,0,1468,1469,5,
  	80,0,0,1469,1470,5,82,0,0,1470,1471,5,79,0,0,1471,1472,5,71,0,0,1472,
  	1473,5,82,0,0,1473,1474,5,65,0,0,1474,1475,5,77,0,0,1475,204,1,0,0,0,
  	1476,1477,5,69,0,0,1477,1478,5,78,0,0,1478,1479,5,68,0,0,1479,1480,5,
  	95,0,0,1480,1481,5,80,0,0,1481,1482,5,82,0,0,1482,1483,5,79,0,0,1483,
  	1484,5,71,0,0,1484,1485,5,82,0,0,1485,1486,5,65,0,0,1486,1487,5,77,0,
  	0,1487,206,1,0,0,0,1488,1489,5,86,0,0,1489,1490,5,65,0,0,1490,1491,5,
  	82,0,0,1491,1492,5,95,0,0,1492,1493,5,65,0,0,1493,1494,5,67,0,0,1494,
  	1495,5,67,0,0,1495,1496,5,69,0,0,1496,1497,5,83,0,0,1497,1498,5,83,0,
  	0,1498,208,1,0,0,0,1499,1500,5,73,0,0,1500,1501,5,78,0,0,1501,1502,5,
  	73,0,0,1502,1503,5,84,0,0,1503,1504,5,73,0,0,1504,1505,5,65,0,0,1505,
  	1506,5,76,0,0,1506,1507,5,95,0,0,1507,1508,5,83,0,0,1508,1509,5,84,0,
  	0,1509,1510,5,69,0,0,1510,1511,5,80,0,0,1511,210,1,0,0,0,1512,1513,5,
  	69,0,0,1513,1514,5,78,0,0,1514,1515,5,68,0,0,1515,1516,5,95,0,0,1516,
  	1517,5,83,0,0,1517,1518,5,84,0,0,1518,1519,5,69,0,0,1519,1520,5,80,0,
  	0,1520,212,1,0,0,0,1521,1522,5,83,0,0,1522,1523,5,84,0,0,1523,1524,5,
  	69,0,0,1524,1525,5,80,0,0,1525,214,1,0,0,0,1526,1527,7,8,0,0,1527,216,
  	1,0,0,0,1528,1536,7,9,0,0,1529,1530,5,83,0,0,1530,1536,5,68,0,0,1531,
  	1532,5,68,0,0,1532,1536,5,83,0,0,1533,1534,5,83,0,0,1534,1536,5,76,0,
  	0,1535,1528,1,0,0,0,1535,1529,1,0,0,0,1535,1531,1,0,0,0,1535,1533,1,0,
  	0,0,1536,218,1,0,0,0,1537,1538,5,84,0,0,1538,1539,5,82,0,0,1539,1540,
  	5,65,0,0,1540,1541,5,78,0,0,1541,1542,5,83,0,0,1542,1543,5,73,0,0,1543,
  	1544,5,84,0,0,1544,1545,5,73,0,0,1545,1546,5,79,0,0,1546,1547,5,78,0,
  	0,1547,220,1,0,0,0,1548,1549,5,69,0,0,1549,1550,5,78,0,0,1550,1551,5,
  	68,0,0,1551,1552,5,95,0,0,1552,1553,5,84,0,0,1553,1554,5,82,0,0,1554,
  	1555,5,65,0,0,1555,1556,5,78,0,0,1556,1557,5,83,0,0,1557,1558,5,73,0,
  	0,1558,1559,5,84,0,0,1559,1560,5,73,0,0,1560,1561,5,79,0,0,1561,1562,
  	5,78,0,0,1562,222,1,0,0,0,1563,1564,5,80,0,0,1564,1565,5,82,0,0,1565,
  	1566,5,73,0,0,1566,1567,5,79,0,0,1567,1568,5,82,0,0,1568,1569,5,73,0,
  	0,1569,1570,5,84,0,0,1570,1571,5,89,0,0,1571,224,1,0,0,0,1572,1573,5,
  	70,0,0,1573,1574,5,82,0,0,1574,1575,5,79,0,0,1575,1576,5,77,0,0,1576,
  	226,1,0,0,0,1577,1578,5,65,0,0,1578,1579,5,67,0,0,1579,1580,5,84,0,0,
  	1580,1581,5,73,0,0,1581,1582,5,79,0,0,1582,1583,5,78,0,0,1583,228,1,0,
  	0,0,1584,1585,5,69,0,0,1585,1586,5,78,0,0,1586,1587,5,68,0,0,1587,1588,
  	5,95,0,0,1588,1589,5,65,0,0,1589,1590,5,67,0,0,1590,1591,5,84,0,0,1591,
  	1592,5,73,0,0,1592,1593,5,79,0,0,1593,1594,5,78,0,0,1594,230,1,0,0,0,
  	1595,1596,5,67,0,0,1596,1597,5,79,0,0,1597,1598,5,78,0,0,1598,1599,5,
  	70,0,0,1599,1600,5,73,0,0,1600,1601,5,71,0,0,1601,1602,5,85,0,0,1602,
  	1603,5,82,0,0,1603,1604,5,65,0,0,1604,1605,5,84,0,0,1605,1606,5,73,0,
  	0,1606,1607,5,79,0,0,1607,1608,5,78,0,0,1608,232,1,0,0,0,1609,1610,5,
  	69,0,0,1610,1611,5,78,0,0,1611,1612,5,68,0,0,1612,1613,5,95,0,0,1613,
  	1614,5,67,0,0,1614,1615,5,79,0,0,1615,1616,5,78,0,0,1616,1617,5,70,0,
  	0,1617,1618,5,73,0,0,1618,1619,5,71,0,0,1619,1620,5,85,0,0,1620,1621,
  	5,82,0,0,1621,1622,5,65,0,0,1622,1623,5,84,0,0,1623,1624,5,73,0,0,1624,
  	1625,5,79,0,0,1625,1626,5,78,0,0,1626,234,1,0,0,0,1627,1628,5,82,0,0,
  	1628,1629,5,69,0,0,1629,1630,5,83,0,0,1630,1631,5,79,0,0,1631,1632,5,
  	85,0,0,1632,1633,5,82,0,0,1633,1634,5,67,0,0,1634,1635,5,69,0,0,1635,
  	236,1,0,0,0,1636,1637,5,79,0,0,1637,1638,5,78,0,0,1638,238,1,0,0,0,1639,
  	1640,5,69,0,0,1640,1641,5,78,0,0,1641,1642,5,68,0,0,1642,1643,5,95,0,
  	0,1643,1644,5,82,0,0,1644,1645,5,69,0,0,1645,1646,5,83,0,0,1646,1647,
  	5,79,0,0,1647,1648,5,85,0,0,1648,1649,5,82,0,0,1649,1650,5,67,0,0,1650,
  	1651,5,69,0,0,1651,240,1,0,0,0,1652,1653,5,82,0,0,1653,1654,5,69,0,0,
  	1654,1655,5,65,0,0,1655,1656,5,68,0,0,1656,1657,5,95,0,0,1657,1658,5,
  	87,0,0,1658,1659,5,82,0,0,1659,1660,5,73,0,0,1660,1661,5,84,0,0,1661,
  	1672,5,69,0,0,1662,1663,5,82,0,0,1663,1664,5,69,0,0,1664,1665,5,65,0,
  	0,1665,1666,5,68,0,0,1666,1667,5,95,0,0,1667,1668,5,79,0,0,1668,1669,
  	5,78,0,0,1669,1670,5,76,0,0,1670,1672,5,89,0,0,1671,1652,1,0,0,0,1671,
  	1662,1,0,0,0,1672,242,1,0,0,0,1673,1674,5,84,0,0,1674,1675,5,65,0,0,1675,
  	1676,5,83,0,0,1676,1677,5,75,0,0,1677,244,1,0,0,0,1678,1679,5,73,0,0,
  	1679,1680,5,78,0,0,1680,1681,5,84,0,0,1681,1682,5,69,0,0,1682,1683,5,
  	82,0,0,1683,1684,5,86,0,0,1684,1685,5,65,0,0,1685,1686,5,76,0,0,1686,
  	246,1,0,0,0,1687,1688,5,83,0,0,1688,1689,5,73,0,0,1689,1690,5,78,0,0,
  	1690,1691,5,71,0,0,1691,1692,5,76,0,0,1692,1693,5,69,0,0,1693,248,1,0,
  	0,0,1694,1695,5,87,0,0,1695,1696,5,73,0,0,1696,1697,5,84,0,0,1697,1698,
  	5,72,0,0,1698,250,1,0,0,0,1699,1700,5,86,0,0,1700,1701,5,65,0,0,1701,
  	1702,5,82,0,0,1702,1703,5,95,0,0,1703,1704,5,67,0,0,1704,1705,5,79,0,
  	0,1705,1706,5,78,0,0,1706,1707,5,70,0,0,1707,1708,5,73,0,0,1708,1709,
  	5,71,0,0,1709,252,1,0,0,0,1710,1711,5,78,0,0,1711,1712,5,65,0,0,1712,
  	1713,5,77,0,0,1713,1714,5,69,0,0,1714,1715,5,83,0,0,1715,1716,5,80,0,
  	0,1716,1717,5,65,0,0,1717,1718,5,67,0,0,1718,1719,5,69,0,0,1719,254,1,
  	0,0,0,1720,1721,5,73,0,0,1721,1722,5,78,0,0,1722,1723,5,84,0,0,1723,1724,
  	5,69,0,0,1724,1725,5,82,0,0,1725,1726,5,78,0,0,1726,1727,5,65,0,0,1727,
  	1728,5,76,0,0,1728,256,1,0,0,0,1729,1730,5,69,0,0,1730,1731,5,78,0,0,
  	1731,1732,5,68,0,0,1732,1733,5,95,0,0,1733,1734,5,78,0,0,1734,1735,5,
  	65,0,0,1735,1736,5,77,0,0,1736,1737,5,69,0,0,1737,1738,5,83,0,0,1738,
  	1739,5,80,0,0,1739,1740,5,65,0,0,1740,1741,5,67,0,0,1741,1742,5,69,0,
  	0,1742,258,1,0,0,0,1743,1744,5,85,0,0,1744,1745,5,83,0,0,1745,1746,5,
  	73,0,0,1746,1747,5,78,0,0,1747,1748,5,71,0,0,1748,260,1,0,0,0,1749,1750,
  	5,79,0,0,1750,1751,5,82,0,0,1751,262,1,0,0,0,1752,1753,5,88,0,0,1753,
  	1754,5,79,0,0,1754,1755,5,82,0,0,1755,264,1,0,0,0,1756,1757,5,65,0,0,
  	1757,1758,5,78,0,0,1758,1759,5,68,0,0,1759,266,1,0,0,0,1760,1761,5,77,
  	0,0,1761,1762,5,79,0,0,1762,1763,5,68,0,0,1763,268,1,0,0,0,1764,1765,
  	5,78,0,0,1765,1766,5,79,0,0,1766,1767,5,84,0,0,1767,270,1,0,0,0,1768,
  	1775,3,325,162,0,1769,1776,3,11,5,0,1770,1772,5,37,0,0,1771,1773,7,7,
  	0,0,1772,1771,1,0,0,0,1772,1773,1,0,0,0,1773,1774,1,0,0,0,1774,1776,3,
  	11,5,0,1775,1769,1,0,0,0,1775,1770,1,0,0,0,1776,272,1,0,0,0,1777,1778,
  	5,83,0,0,1778,1779,5,85,0,0,1779,1780,5,80,0,0,1780,1781,5,69,0,0,1781,
  	1782,5,82,0,0,1782,274,1,0,0,0,1783,1784,5,82,0,0,1784,1785,5,69,0,0,
  	1785,1786,5,84,0,0,1786,1787,5,85,0,0,1787,1788,5,82,0,0,1788,1789,5,
  	78,0,0,1789,276,1,0,0,0,1790,1791,5,73,0,0,1791,1792,5,70,0,0,1792,278,
  	1,0,0,0,1793,1794,5,84,0,0,1794,1795,5,72,0,0,1795,1796,5,69,0,0,1796,
  	1797,5,78,0,0,1797,280,1,0,0,0,1798,1799,5,69,0,0,1799,1800,5,76,0,0,
  	1800,1801,5,83,0,0,1801,1802,5,73,0,0,1802,1803,5,70,0,0,1803,282,1,0,
  	0,0,1804,1805,5,69,0,0,1805,1806,5,76,0,0,1806,1807,5,83,0,0,1807,1808,
  	5,69,0,0,1808,284,1,0,0,0,1809,1810,5,69,0,0,1810,1811,5,78,0,0,1811,
  	1812,5,68,0,0,1812,1813,5,95,0,0,1813,1814,5,73,0,0,1814,1815,5,70,0,
  	0,1815,286,1,0,0,0,1816,1817,5,67,0,0,1817,1818,5,65,0,0,1818,1819,5,
  	83,0,0,1819,1820,5,69,0,0,1820,288,1,0,0,0,1821,1822,5,69,0,0,1822,1823,
  	5,78,0,0,1823,1824,5,68,0,0,1824,1825,5,95,0,0,1825,1826,5,67,0,0,1826,
  	1827,5,65,0,0,1827,1828,5,83,0,0,1828,1829,5,69,0,0,1829,290,1,0,0,0,
  	1830,1831,5,69,0,0,1831,1832,5,88,0,0,1832,1833,5,73,0,0,1833,1834,5,
  	84,0,0,1834,292,1,0,0,0,1835,1836,5,67,0,0,1836,1837,5,79,0,0,1837,1838,
  	5,78,0,0,1838,1839,5,84,0,0,1839,1840,5,73,0,0,1840,1841,5,78,0,0,1841,
  	1842,5,85,0,0,1842,1843,5,69,0,0,1843,294,1,0,0,0,1844,1845,5,70,0,0,
  	1845,1846,5,79,0,0,1846,1847,5,82,0,0,1847,296,1,0,0,0,1848,1849,5,68,
  	0,0,1849,1850,5,79,0,0,1850,298,1,0,0,0,1851,1852,5,69,0,0,1852,1853,
  	5,78,0,0,1853,1854,5,68,0,0,1854,1855,5,95,0,0,1855,1856,5,70,0,0,1856,
  	1857,5,79,0,0,1857,1858,5,82,0,0,1858,300,1,0,0,0,1859,1860,5,84,0,0,
  	1860,1861,5,79,0,0,1861,302,1,0,0,0,1862,1863,5,66,0,0,1863,1864,5,89,
  	0,0,1864,304,1,0,0,0,1865,1866,5,87,0,0,1866,1867,5,72,0,0,1867,1868,
  	5,73,0,0,1868,1869,5,76,0,0,1869,1870,5,69,0,0,1870,306,1,0,0,0,1871,
  	1872,5,69,0,0,1872,1873,5,78,0,0,1873,1874,5,68,0,0,1874,1875,5,95,0,
  	0,1875,1876,5,87,0,0,1876,1877,5,72,0,0,1877,1878,5,73,0,0,1878,1879,
  	5,76,0,0,1879,1880,5,69,0,0,1880,308,1,0,0,0,1881,1882,5,82,0,0,1882,
  	1883,5,69,0,0,1883,1884,5,80,0,0,1884,1885,5,69,0,0,1885,1886,5,65,0,
  	0,1886,1887,5,84,0,0,1887,310,1,0,0,0,1888,1889,5,85,0,0,1889,1890,5,
  	78,0,0,1890,1891,5,84,0,0,1891,1892,5,73,0,0,1892,1893,5,76,0,0,1893,
  	312,1,0,0,0,1894,1895,5,69,0,0,1895,1896,5,78,0,0,1896,1897,5,68,0,0,
  	1897,1898,5,95,0,0,1898,1899,5,82,0,0,1899,1900,5,69,0,0,1900,1901,5,
  	80,0,0,1901,1902,5,69,0,0,1902,1903,5,65,0,0,1903,1904,5,84,0,0,1904,
  	314,1,0,0,0,1905,1910,3,1,0,0,1906,1909,3,1,0,0,1907,1909,3,3,1,0,1908,
  	1906,1,0,0,0,1908,1907,1,0,0,0,1909,1912,1,0,0,0,1910,1908,1,0,0,0,1910,
  	1911,1,0,0,0,1911,316,1,0,0,0,1912,1910,1,0,0,0,1913,1915,7,10,0,0,1914,
  	1913,1,0,0,0,1915,1916,1,0,0,0,1916,1914,1,0,0,0,1916,1917,1,0,0,0,1917,
  	1918,1,0,0,0,1918,1919,6,158,0,0,1919,318,1,0,0,0,1920,1922,5,13,0,0,
  	1921,1923,5,10,0,0,1922,1921,1,0,0,0,1922,1923,1,0,0,0,1923,1926,1,0,
  	0,0,1924,1926,5,10,0,0,1925,1920,1,0,0,0,1925,1924,1,0,0,0,1926,1927,
  	1,0,0,0,1927,1928,6,159,0,0,1928,320,1,0,0,0,1929,1930,5,47,0,0,1930,
  	1931,5,42,0,0,1931,1935,1,0,0,0,1932,1934,9,0,0,0,1933,1932,1,0,0,0,1934,
  	1937,1,0,0,0,1935,1936,1,0,0,0,1935,1933,1,0,0,0,1936,1938,1,0,0,0,1937,
  	1935,1,0,0,0,1938,1939,5,42,0,0,1939,1940,5,47,0,0,1940,1941,1,0,0,0,
  	1941,1942,6,160,0,0,1942,322,1,0,0,0,1943,1944,5,47,0,0,1944,1945,5,47,
  	0,0,1945,1949,1,0,0,0,1946,1948,8,11,0,0,1947,1946,1,0,0,0,1948,1951,
  	1,0,0,0,1949,1947,1,0,0,0,1949,1950,1,0,0,0,1950,1952,1,0,0,0,1951,1949,
  	1,0,0,0,1952,1953,6,161,0,0,1953,324,1,0,0,0,1954,1955,5,46,0,0,1955,
  	326,1,0,0,0,1956,1957,5,59,0,0,1957,328,1,0,0,0,1958,1959,5,58,0,0,1959,
  	330,1,0,0,0,1960,1961,5,58,0,0,1961,1962,5,61,0,0,1962,332,1,0,0,0,1963,
  	1964,5,40,0,0,1964,334,1,0,0,0,1965,1966,5,41,0,0,1966,336,1,0,0,0,1967,
  	1968,5,46,0,0,1968,1969,5,46,0,0,1969,338,1,0,0,0,1970,1971,5,94,0,0,
  	1971,340,1,0,0,0,1972,1973,5,44,0,0,1973,342,1,0,0,0,1974,1975,5,95,0,
  	0,1975,344,1,0,0,0,1976,1977,5,35,0,0,1977,346,1,0,0,0,1978,1979,5,91,
  	0,0,1979,348,1,0,0,0,1980,1981,5,93,0,0,1981,350,1,0,0,0,1982,1983,5,
  	42,0,0,1983,1984,5,42,0,0,1984,352,1,0,0,0,1985,1986,5,38,0,0,1986,354,
  	1,0,0,0,1987,1988,5,61,0,0,1988,356,1,0,0,0,1989,1990,5,60,0,0,1990,1991,
  	5,62,0,0,1991,358,1,0,0,0,1992,1993,5,60,0,0,1993,360,1,0,0,0,1994,1995,
  	5,62,0,0,1995,362,1,0,0,0,1996,1997,5,60,0,0,1997,1998,5,61,0,0,1998,
  	364,1,0,0,0,1999,2000,5,62,0,0,2000,2001,5,61,0,0,2001,366,1,0,0,0,2002,
  	2003,5,43,0,0,2003,368,1,0,0,0,2004,2005,5,45,0,0,2005,370,1,0,0,0,2006,
  	2007,5,47,0,0,2007,372,1,0,0,0,2008,2009,5,63,0,0,2009,2010,5,61,0,0,
  	2010,374,1,0,0,0,2011,2012,5,61,0,0,2012,2013,5,62,0,0,2013,376,1,0,0,
  	0,2014,2015,5,42,0,0,2015,378,1,0,0,0,68,0,391,396,401,409,414,420,425,
  	432,437,444,456,466,478,493,499,507,515,520,528,537,545,548,550,558,561,
  	563,571,574,576,584,587,589,600,603,605,616,619,621,640,661,693,702,719,
  	740,751,769,776,787,798,818,838,863,917,925,1248,1306,1535,1671,1772,
  	1775,1908,1910,1916,1922,1925,1935,1949,1,6,0,0
  };
  staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0]));

  antlr4::atn::ATNDeserializer deserializer;
  staticData->atn = deserializer.deserialize(staticData->serializedATN);

  const size_t count = staticData->atn->getNumberOfDecisions();
  staticData->decisionToDFA.reserve(count);
  for (size_t i = 0; i < count; i++) { 
    staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i);
  }
  plcstlexerLexerStaticData = staticData.release();
}

}

PLCSTLexer::PLCSTLexer(CharStream *input) : Lexer(input) {
  PLCSTLexer::initialize();
  _interpreter = new atn::LexerATNSimulator(this, *plcstlexerLexerStaticData->atn, plcstlexerLexerStaticData->decisionToDFA, plcstlexerLexerStaticData->sharedContextCache);
}

PLCSTLexer::~PLCSTLexer() {
  delete _interpreter;
}

std::string PLCSTLexer::getGrammarFileName() const {
  return "PLCSTLexer.g4";
}

const std::vector<std::string>& PLCSTLexer::getRuleNames() const {
  return plcstlexerLexerStaticData->ruleNames;
}

const std::vector<std::string>& PLCSTLexer::getChannelNames() const {
  return plcstlexerLexerStaticData->channelNames;
}

const std::vector<std::string>& PLCSTLexer::getModeNames() const {
  return plcstlexerLexerStaticData->modeNames;
}

const dfa::Vocabulary& PLCSTLexer::getVocabulary() const {
  return plcstlexerLexerStaticData->vocabulary;
}

antlr4::atn::SerializedATNView PLCSTLexer::getSerializedATN() const {
  return plcstlexerLexerStaticData->serializedATN;
}

const atn::ATN& PLCSTLexer::getATN() const {
  return *plcstlexerLexerStaticData->atn;
}




void PLCSTLexer::initialize() {
  ::antlr4::internal::call_once(plcstlexerLexerOnceFlag, plcstlexerLexerInitialize);
}
